﻿using RepositoryEntity;
using RepositoryEntity.ResultModel.MenuInfoResultModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace IRepositoryBll
{
    public interface IMenuInfoBll
    {
        /// <summary>
        /// 添加菜单
        /// </summary>
        /// <param name="menuInfo"></param>
        /// <returns></returns>
        bool AddMenuInfo(MenuInfo menuInfo);
        /// <summary>
        /// 分页
        /// </summary>
        /// <param name="page"></param>
        /// <param name="limit"></param>
        /// <param name="count"></param>
        /// <param name="title"></param>
        /// <returns></returns>
        object GetMenuInfoListByPage(int page, int limit, out int count, string title);
       
       
        /// <summary>
        /// 菜单信息数据集合
        /// </summary>
        /// <returns></returns>
        List<MenuInfoResultModel> GetInitMenus(UserInfo userInfo);

        /// <summary>
        /// 获取
        /// </summary>
        /// <returns></returns>
        List<MenuInfo> GetMenuInfoList();
        MenuInfo GetMenuInfo(string menuInfoId);

        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="menuInfo"></param>
        /// <returns></returns>
        bool UpdateMenuInfo(MenuInfo menuInfo);
        bool UpdateMenuInfo(string ID, string Title, string Description, int  Level, int  Sort, string Href, string ParentId, string Icon, string Target);

        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="menuInfoId"></param>
        /// <returns></returns>
        bool DeleteRoleInfo(string menuInfoId);
        bool SoftDeleteMenuInfo(string menuInfoId);


        /// <summary>
        /// 判断相同账号
        /// </summary>
        /// <param name="title"></param>
        /// <returns></returns>
        bool IsHadMenuInfo(string title);


        /// <summary>
        /// 获取更新下拉数据
        /// </summary>
        /// <param name="menuInfoId"></param>
        /// <returns></returns>
        object GetMenuSelectOption(string menuInfoId);
        object GetMenuSelectOption();

        /// <summary>
        /// 获取绑定菜单备选数据
        /// </summary>
        /// <returns></returns>
        object GetSelectOption();
    }
}
